package ti.converter;

import junit.framework.Assert;

import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;

public class LiczbaTest4 {
	
	private Liczba bazowa;
	
	@Before
	public void setUp() {
		bazowa = new Liczba(100);
	}
	
	@After
	public void tearDown() {
		bazowa = null;
	}

	@Test
	public void testSimpleNumberToBinary() {
		Liczba liczba = new Liczba(100);
		
		String converted = liczba.pobierz(2);
		
		Assert.assertEquals("1100100", converted);
		Assert.assertEquals(bazowa.pobierz(2), converted);
	}
	
	@Test(expected = IllegalArgumentException.class)
	public void testNegativeNumbersException() {
		Liczba liczba = new Liczba(-1);
		
		String converted = liczba.pobierz(8);
		
		Assert.fail("Should throw exception when negative number");
	}
	
	@Test(timeout = 200)
	public void testLongNumbers() {
		Liczba liczba = new Liczba(Integer.MAX_VALUE);
		
		String converted = liczba.pobierz(3);
		
		Assert.assertNotNull(converted);
	}

	// zdjac ignore gdy gotowy bedzie konwerter w systemie uzupelnien do dwoch
	@Ignore
	@Test
	public void testNegativeNumbersConvertion() {
		Liczba liczba = new Liczba(-21);
		
		String converted = liczba.pobierz(2);
		
		Assert.assertEquals("11101011", converted);

	}
	

}
